package cn.itcast.nems.studentrecord.web.vo.query;

import cn.itcast.nems.employee.dao.bean.EmployeeGroupBean;
import cn.itcast.nems.studentrecord.dao.condition.ApprovalType;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateDeserializer;
import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateSerializer;
import lombok.Data;

import java.io.Serializable;
import java.time.LocalDate;
import java.util.List;

/**
 * <p>
 * 升级凭单 分页查询条件
 * </p>
 *
 * @author zhouwei
 * @since 2023/11/12 3:41 PM
 **/
@Data
public class JournalRenewalPageQueryVO implements Serializable {

    /**
     * MY_COMMIT:我提交的、WAIT_APPROVAL:待我审核的、ALL：全部
     */
    private ApprovalType approvalType ;
    /**
     * 校区ID
     */
    private List<String> targetClazzCampusIds ;
    private String id ;
    private String createdBy ;

    /**
     * 升级班级ID
     */
    private Integer targetClazzId ;
    /**
     * 升级班级
     */
    private String targetClazzName ;
    /**
     * 创建时间-开始时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    @JsonSerialize(using = LocalDateSerializer.class)
    @JsonDeserialize(using = LocalDateDeserializer.class)
    private LocalDate createdStartTime ;
    /**
     * 创建时间-结束时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    @JsonSerialize(using = LocalDateSerializer.class)
    @JsonDeserialize(using = LocalDateDeserializer.class)
    private LocalDate createdEndTime ;
    /**
     * 状态;枚举值：草稿｜DRAFT、审批中｜PENDING、审批通过处理中｜APPROVED、审批未通过且流程结束｜REJECTED、审批通过并处理完成｜FINISHED
     */
    private String state ;

    private List<EmployeeGroupBean> employeeGroups;
}
